import pandas as pd
import numpy as np
import re

# 读取CSV文件
df = pd.read_csv(r"C:\Users\Lenovo\Desktop\house.csv", encoding='gbk')

# 删除所有缺失值
d1 = df.dropna().reset_index(drop=True)

# 分解户型
def apart_room(x):
    if pd.isnull(x) or x == '暂无':
        return 0
    return int(x.split('室')[0])


def apart_hall(x):
    # 使用正则表达式查找 '厅' 后面的数字
    match = re.search(r'厅(\d+)', x)
    if match:
        # 如果找到了，返回匹配的数字
        return int(match.group(1))
    else:
        # 如果没有找到，返回 0
        return 0

def apart_wc(x):
    if pd.isnull(x) or '卫' not in x:
        return 0
    try:
        return int(re.search(r'(\d+)卫', x).group(1))
    except AttributeError:
        return 0

# 应用分解
d1['室'] = d1['户型'].map(apart_room)
d1['厅'] = d1['户型'].map(apart_hall)
d1['卫'] = d1['户型'].map(apart_wc)